home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / Obrn-A_1.6_lib.lha / oberon-a / source3.lha / source / 3rdParty / IntuiSup.mod < prev    next >
Text File  |  1995-06-29  |  28KB  |  774 lines

  1. (*************************************************************************
  2.  
  3.      $RCSfile: IntuiSup.mod $
  4.   Description: Interface to intuisup.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 2.11 $
  8.       $Author: fjc $
  9.         $Date: 1995/06/04 23:11:42 $
  10.  
  11.   Copyright © 1994-1995, Frank Copeland.
  12.   This file is part of the Oberon-A Library.
  13.   See Oberon-A.doc for conditions of use and distribution.
  14.  
  15. *************************************************************************)
  16.  
  17. <* STANDARD- *>
  18.  
  19. MODULE [2] IntuiSup;
  20.  
  21. IMPORT
  22.   SYS := SYSTEM, Kernel, e := Exec, gfx := Graphics, df := DiskFont,
  23.   i := Intuition, s := Sets;
  24.  
  25.  
  26. (* $Revision Header *** Header built automatically - do not edit! ***********
  27.  *
  28.  *      (C) Copyright 1991 by Torsten Jürgeleit
  29.  *
  30.  *      Name .....: intuisup.h
  31.  *      Created ..: Sunday 22-Dec-91 20:34:40
  32.  *      Revision .: 14
  33.  *
  34.  *      Date        Author                 Comment
  35.  *      =========   ====================   ====================
  36.  *      08-Aug-92   Torsten Jürgeleit      new flags
  37.  *                                         gadgetDataFlagInputCENTER/RIGHT
  38.  *      06-Aug-92   Torsten Jürgeleit      new flag
  39.  *                                         gadgetDataFlagListviewEntryCOLOR
  40.  *      28-Jul-92   Torsten Jürgeleit      different centering types for
  41.  *                                         requesters
  42.  *      28-Jul-92   Torsten Jürgeleit      open window centered over position
  43.  *                                         of mouse pointer
  44.  *      11-Jul-92   Torsten Jürgeleit      use RAWKEY instead of VANILLAKEY
  45.  *                                         for gadget hotkeys
  46.  *      01-Jul-92   Torsten Jürgeleit      added support for custom slider
  47.  *                                         knob image
  48.  *      21-Jun-92   Torsten Jürgeleit      check for compiler and define
  49.  *                                         differences
  50.  *      03-Jun-92   Torsten Jürgeleit      alternate color for menu item texts
  51.  *      14-Apr-92   Torsten Jürgeleit      neq flag gadgetDataFlagNoCLEAR
  52.  *      12-May-92   Torsten Jürgeleit      text colors for IClearWindow()
  53.  *      30-Apr-92   Torsten Jürgeleit      rasters for IClearWindow() and
  54.  *                                         requesters
  55.  *      01-Apr-92   Torsten Jürgeleit      changed parameter size of
  56.  *                                         IModifyGadget() for new value of
  57.  *                                         useCurrentValue 31
  58.  *      31-Mar-92   Torsten Jürgeleit      changed useCurrentValue from ~0L
  59.  *                                         to 31
  60.  *      21-Mar-92   Torsten Jürgeleit      flags for converting numbers with
  61.  *                                         string gadgets
  62.  *      22-Dec-91   Torsten Jürgeleit      Created this file!
  63.  *
  64.  ****************************************************************************
  65.  *
  66.  *      Includes, defines, structures, prototypes and pragmas for IntuiSup
  67.  *      library
  68.  *
  69.  * $Revision Header ********************************************************)
  70.  
  71.  
  72. CONST
  73.  
  74.         (* Defines for library *)
  75.  
  76.   intuisupName * = "intuisup.library";
  77.   version      * = 4;
  78.  
  79.         (* Defines for render *)
  80.  
  81.   maxRenderImages = 11;
  82.  
  83.   riInnerWindow * = 0; (* use upper left corner of inner window as location (0,0) *)
  84.   riBackFill    * = 1; (* fill window back ground with different color *)
  85.   riAvailFonts  * = 2; (* scan available fonts and use this list for IAskFont/IOpenFont *)
  86.  
  87. TYPE
  88.  
  89.   RenderInfoPtr* = POINTER TO RenderInfo;
  90.   RenderInfo* = RECORD
  91.     id                   * : LONGINT; (* id = 'ISUP' *)
  92.     screen               * : i.ScreenPtr;
  93.     screenWidth          * : e.UWORD;
  94.     screenHeight         * : e.UWORD;
  95.     screenDepth          * : SHORTINT;
  96.     windowBorderTop      * : SHORTINT;
  97.     windowBorderLeft     * : SHORTINT;
  98.     windowBorderRight    * : SHORTINT;
  99.     windowBorderBottom   * : SHORTINT;
  100.     highlightPen         * : SHORTINT;
  101.     shadowPen            * : SHORTINT;
  102.     textPen1             * : SHORTINT;
  103.     textPen2             * : SHORTINT;
  104.     backPen              * : SHORTINT;
  105.     flags                * : s.SET16;
  106.     imageDataSize        * : e.ULONG;
  107.     imageData            * : e.APTR;
  108.     availFontsHeaderSize * : e.ULONG;
  109.     availFontsHeader     * : df.AvailFontsHeaderPtr;
  110.     textFont             * : gfx.TextFontPtr;
  111.     textAttr             * : gfx.TextAttr;
  112.     images               * : ARRAY maxRenderImages OF i.Image;
  113.   END; (* RenderInfo *)
  114.  
  115. CONST
  116.  
  117.   dataEnd * = 0;          (* mark end of data arry *)
  118.  
  119.   id *      = 49535550H;  (* "ISUP" *)
  120.  
  121.         (* Defines for open window flags *)
  122.  
  123.   owCenterScreen * = 0;   (* center window on screen *)
  124.   owRenderPens   * = 1;   (* use render pens for detail and backfill pen *)
  125.   owCenterMouse  * = 2;   (* center window over current position of mouse pointer *)
  126.  
  127.         (* Defines for clear window flags *)
  128.  
  129.   cwCustomDrawMode * = 0; (* don't change draw mode *)
  130.   cwCustomColor    * = 1; (* don't change background color *)
  131.   cwNormalColor    * = 2; (* use normal background color *)
  132.   cwUseRaster      * = 3; (* use standard raster for window background *)
  133.   cwAbsolutePos    * = 4; (* don't add window border offset to given upper left position *)
  134.   cwText1Color     * = 5; (* use text color 1 *)
  135.   cwText2Color     * = 6; (* use text color 2 *)
  136.  
  137.         (* Defines for texts *)
  138.  
  139.   text           * = 1;
  140.   numUnsignedDec * = 2;
  141.   numSignedDec   * = 3;
  142.   numHex         * = 4;
  143.   numBin         * = 5;
  144.  
  145.   tdBold             * = 0;
  146.   tdItalic           * = 1;
  147.   tdUnderlined       * = 2;
  148.   tdAbsolutePos      * = 3;  (* absolute text pos given - don't add border offsets *)
  149.   tdCenter           * = 4;  (* center text with in window width *)
  150.   tdPlaceLeft        * = 5;  (* place text left of given left edge *)
  151.   tdColor2           * = 6;  (* use 2nd text render pen *)
  152.   tdComplement       * = 7;  (* use complement of front and back pen *)
  153.   tdBackFill         * = 8;  (* use draw mode JAM2 to fill text background with riBackPen *)
  154.   tdNoPrint          * = 9;  (* don't print text - only calc width *)
  155.   tdNumIdentifier    * = 10; (* convert number with normal (assmebler style) leading identifier `$' or `%' *)
  156.   tdNumCStyle        * = 11; (* use C style identifier `0x' for hex numbers *)
  157.   tdNumLeadingZeroes * = 12; (* convert number includeing leading zeroes *)
  158.   tdNumUpperCase     * = 13; (* use upper case characters for hex number *)
  159.  
  160.   cIdentifier    * = 0; (* convert number with normal (assmebler style) leading identifier `$' or `%' *)
  161.   cCStyle        * = 1; (* use C style identifier `0x' for hex numbers *)
  162.   cLeadingZeroes * = 2; (* convert number includeing leading zeroes *)
  163.   cUpperCase     * = 3; (* use upper case characters for hex number *)
  164.  
  165. TYPE
  166.  
  167.         (* Structures for texts *)
  168.  
  169.   TextDataPtr * = POINTER TO TextData;
  170.   TextData * = RECORD
  171.     type     * : e.UWORD;
  172.     flags    * : s.SET16;
  173.     leftEdge * : INTEGER;
  174.     topEdge  * : INTEGER;
  175.     text     * : e.LSTRPTR;
  176.     textAttr * : gfx.TextAttrPtr;
  177.   END; (* TextData *)
  178.   TextDataListPtr * = POINTER TO ARRAY 32767 OF TextData;
  179.  
  180. CONST
  181.  
  182.         (* Defines for borders *)
  183.  
  184.   box1Out * = 1;
  185.   box1In  * = 2;
  186.   box2Out * = 3;
  187.   box2In  * = 4;
  188.  
  189. TYPE
  190.  
  191.         (* Structures for borders *)
  192.  
  193.   BorderDataPtr * = POINTER TO BorderData;
  194.   BorderData * = RECORD
  195.     type * : e.UWORD;
  196.     leftEdge * : INTEGER;
  197.     topEdge * : INTEGER;
  198.     width * : e.UWORD;
  199.     height * : e.UWORD;
  200.   END; (* BorderData *)
  201.   BorderDataListPtr * = POINTER TO ARRAY 32767 OF BorderData;
  202.  
  203. CONST
  204.  
  205.         (* Defines for gadgets *)
  206.  
  207.   button         * = 1;  (* button gadget *)
  208.   check          * = 2;  (* checkbox gadget *)
  209.   mx             * = 3;  (* mutual exclude gadget *)
  210.   string         * = 4;  (* string input gadget *)
  211.   integer        * = 5;  (* integer input gadget *)
  212.   slider         * = 6;  (* slider gadget *)
  213.   scroller       * = 7;  (* scroller gadget *)
  214.   cycle          * = 8;  (* cycle gadget *)
  215.   count          * = 9;  (* count gadget *)
  216.   listView       * = 10; (* list view gadget *)
  217.   palette        * = 11; (* palette gadget *)
  218.  
  219.   gdDisabled             * = 0;  (* gadget disabled (ghosted) - default enabled *)
  220.   gdNoBorder             * = 1;  (* no gadget border - default with border *)
  221.   gdHighComp             * = 2;  (* highliting by complement - default by select border *)
  222.   gdOrientationVert      * = 3;  (* vertical orientation - default horizontal *)
  223.   gdHotKey               * = 4;  (* hotkey given - default none *)
  224.   gdNoTextOutput         * = 5;  (* no text output, but scan gadget text for hotkey *)
  225.   gdTextLeft             * = 6;  (* place text left of gadget *)
  226.   gdTextRight            * = 7;  (* place text right of gadget *)
  227.   gdTextAbove            * = 8;  (* place text above of gadget *)
  228.   gdTextBelow            * = 9;  (* place text below of gadget *)
  229.   gdTextColor2           * = 10; (* use 2nd text render pen for gadget text *)
  230.   gdButtonToggle         * = 11; (* button gadgets: toggle button - default no toggle *)
  231.   gdButtonImage          * = 12; (* button gadgets: render image - default no image *)
  232.   gdInputAutoActivate    * = 13; (* input gadgets: acivate after GADGETUP next or previous input gadget *)
  233.   gdStringUnsignedDec    * = 14; (* string gadgets: input default no pointer to string but an unsigned decimal number *)
  234.   gdStringSignedDec      * = 15; (* string gadgets: input default no pointer to string but an signed decimal number *)
  235.   gdStringHex            * = 16; (* string gadgets: input default no pointer to string but an hex number *)
  236.   gdStringBin            * = 17; (* string gadgets: input default no pointer to string but an binary number *)
  237.   gdScrollerNoArrows     * = 18; (* scroller gadget: no arrows - default with arrows *)
  238.   gdCountSignedDec       * = 19; (* count gadget: signed dec - default unsigned dec *)
  239.   gdListviewReadOnly     * = 20; (* list view gadget: read only - default selection enabled *)
  240.   gdListviewShowSelected * = 21; (* list view gadget: show last selected entry - default no *)
  241.   gdPaletteNoIndicator   * = 22; (* palette gadget: no current color indicator - default with indicator *)
  242.   gdPaletteIndicatorTop  * = 23; (* palette gadget: place indicator at top - default at left *)
  243.   gdMovePointer          * = 24; (* move mouse pointer to center of this gadget *)
  244.   gdNoClear              * = 25; (* don't clear area occupied by this gadget before drawing *)
  245.   gdSliderImage          * = 26; (* kludge to define image for knob of proportional gadget in gdTextAttr (if text then default TextAttr used) *)
  246.   gdListviewEntryColor   * = 27; (* list view gadget: if first char of an entry text equals <Ctrl A> ($01) then this char will be skipped and the rest of this entry text will be printed in a different color *)
  247.   gdInputCenter          * = 28; (* input gadgets: center input string within gadget *)
  248.   gdInputRight           * = 29; (* input gadgets: right justify input string within gadget *)
  249.  
  250.   giButton       * = { i.gadgetUp,   i.rawKey };
  251.   giCheck        * = { i.gadgetDown, i.rawKey };
  252.   giMX           * = { i.gadgetDown, i.rawKey };
  253.   giString       * = { i.gadgetUp,   i.rawKey };
  254.   giInteger      * = { i.gadgetUp,   i.rawKey };
  255.   giSlider       * = { i.gadgetUp,   i.mouseMove, i.rawKey };
  256.   giScroller     * = { i.gadgetDown, i.gadgetUp,  i.mouseMove,
  257.                        i.intuiTicks, i.rawKey };
  258.   giCycle        * = { i.gadgetUp,   i.rawKey };
  259.   giCount        * = { i.gadgetDown, i.gadgetUp,  i.mouseMove, i.rawKey };
  260.   giListview     * = { i.gadgetDown, i.gadgetUp,  i.mouseMove,
  261.                        i.intuiTicks, i.rawKey };
  262.   giPalette      * = { i.gadgetUp,   i.rawKey };
  263.   giAll          * = { i.gadgetDown, i.gadgetUp,  i.mouseMove,
  264.                        i.intuiTicks, i.rawKey };
  265.  
  266.   useCurrentValue       * = 80000000H;
  267.     (* used for setgadgetattributes() to indicate data for which to use
  268.        the current value *)
  269.  
  270. TYPE
  271.  
  272.   GadgetList * = POINTER TO RECORD END;
  273.   TextArrayPtr * = POINTER TO ARRAY 32767 OF e.LSTRPTR;
  274.  
  275.         (* Structures for gadgets *)
  276.  
  277.   GadgetDataPtr * = POINTER TO GadgetData;
  278.   GadgetData * = RECORD
  279.     type     * : e.ULONG;
  280.     flags    * : s.SET32;
  281.     leftEdge * : e.UWORD;
  282.     topEdge  * : e.UWORD;
  283.     width    * : e.UWORD;
  284.     height   * : e.UWORD;
  285.     text     * : e.LSTRPTR;
  286.     textAttr * : gfx.TextAttrPtr;
  287.   END; (* GadgetData *)
  288.  
  289.   StandardDataPtr * = POINTER TO StandardData;
  290.   StandardData * = RECORD (GadgetData) (* standard data struct *)
  291.     data1 * : LONGINT;
  292.     data2 * : LONGINT;
  293.     data3 * : e.APTR;
  294.   END; (* StandardData *)
  295.  
  296.   ButtonDataPtr * = POINTER TO ButtonData;
  297.   ButtonData * = RECORD (GadgetData) (* for button gadgets *)
  298.     selected     * : e.ULONG;    (* selection state for toggle buttons - ZERO * = unselected, non ZERO * = selected *)
  299.     normalRender * : i.ImagePtr; (* normal render image *)
  300.     selectRender * : i.ImagePtr; (* select render image *)
  301.   END; (* ButtonData *)
  302.  
  303.   CheckDataPtr * = POINTER TO CheckData;
  304.   CheckData * = RECORD (GadgetData) (* for check gadgets *)
  305.     selected * : e.ULONG; (* selection state - ZERO * = unselected, non ZERO * = selected *)
  306.     pad1     * : e.ULONG;
  307.     pad2     * : e.ULONG;
  308.   END; (* CheckData *)
  309.  
  310.   MXDataPtr * = POINTER TO MXData;
  311.   MXData * = RECORD (GadgetData) (* for mutual exclude gadgets *)
  312.     spacing     * : e.ULONG;      (* pixel spacing between MX gadgets *)
  313.     activeEntry * : e.ULONG;      (* num of active entry from text array *)
  314.     textArray   * : TextArrayPtr; (* ptr to MX text ptr array *)
  315.   END; (* MXData *)
  316.  
  317.   InputDataPtr * = POINTER TO InputData;
  318.   InputData * = RECORD (GadgetData) (* for string and integer gadgets *)
  319.     len          * : e.ULONG; (* len of input buffer *)
  320.     activateNext * : e.UWORD; (* num of next string/num gadget to activate *)
  321.     activatePrev * : e.UWORD; (* num of previous string/num gadget to activate *)
  322.     default      * : e.APTR;  (* string: default text [syntax: "text"] *)
  323.                               (* integer: default number [syntax: (VOID * )num] *)
  324.   END; (* InputData *)
  325.  
  326.   SliderDataPtr * = POINTER TO SliderData;
  327.   SliderData * = RECORD (GadgetData) (* for slider gadgets *)
  328.     min   * : LONGINT; (* min level *)
  329.     max   * : LONGINT; (* max level *)
  330.     level * : LONGINT; (* current slider level *)
  331.   END; (* SliderData *)
  332.  
  333.   ScrollerDataPtr * = POINTER TO ScrollerData;
  334.   ScrollerData * = RECORD (GadgetData) (* for scroller gadgets *)
  335.     visible * : e.ULONG; (* visible entries *)
  336.     total   * : e.ULONG; (* total entries *)
  337.     top     * : e.ULONG; (* current top entry *)
  338.   END; (* ScrollerData *)
  339.  
  340.   CycleDataPtr * = POINTER TO CycleData;
  341.   CycleData * = RECORD (GadgetData) (* for cycle gadget *)
  342.     spacing   * : e.ULONG;      (* pixel spacing between pop up cycle list entries *)
  343.     active    * : e.ULONG;      (* num of current cycle text ptr array entry *)
  344.     textArray * : TextArrayPtr; (* ptr to cycle text ptr array *)
  345.   END; (* CycleData *)
  346.  
  347.   CountDataPtr * = POINTER TO CountData;
  348.   CountData * = RECORD (GadgetData) (* for count gadget *)
  349.     min   * : e.ULONG; (* min value *)
  350.     max   * : e.ULONG; (* max value *)
  351.     value * : e.ULONG; (* current count value *)
  352.   END; (* CountData *)
  353.  
  354.   ListViewDataPtr * = POINTER TO ListViewData;
  355.   ListViewData * = RECORD (GadgetData) (* for list view gadget *)
  356.     spacing * : e.ULONG;   (* pixel spacing between list view entries *)
  357.     top     * : e.ULONG;   (* current top entry *)
  358.     list    * : e.ListPtr; (* current list ptr *)
  359.   END; (* ListViewData *)
  360.  
  361.   PaletteDataPtr * = POINTER TO PaletteData;
  362.   PaletteData * = RECORD (GadgetData) (* for palette gadget *)
  363.     depth       * : e.ULONG; (* num of bitplanes for palette *)
  364.     colorOffset * : e.ULONG; (* first color of palette *)
  365.     activeColor * : e.ULONG; (* selected color *)
  366.   END; (* SpecialData *)
  367.  
  368. CONST
  369.  
  370.         (* Defines for auto request *)
  371.  
  372.   arBackFill       * = 0;
  373.   arRenderPens     * = 1;
  374.   arTextCenter     * = 2;
  375.   arTextColor2     * = 3;
  376.   arHotKey         * = 4;
  377.   arBeep           * = 5;
  378.   arMovePointerPos * = 6;
  379.   arMovePointerNeg * = 7;
  380.   arDrawRaster     * = 8; (* draw raster around text area *)
  381.   arCenterMouse    * = 9; (* center last gadget of auto requester over current position of mouse pointer *)
  382.  
  383.         (* Defines for requester *)
  384.  
  385.   rdBackFill     * = 0;
  386.   rdRenderPens   * = 1;
  387.   rdInnerWindow  * = 2;
  388.   rdAvailFonts   * = 3;
  389.   rdCenterScreen * = 4; (* center requester on window's screen *)
  390.   rdDragGadget   * = 5;
  391.   rdDepthGadget  * = 6;
  392.   rdDrawRaster   * = 7; (* draw raster between FIRST BORDER and window border - FIRST BORDER will not be used further *)
  393.   rdCenterWindow * = 8; (* center requester on window *)
  394.   rdCenterMouse  * = 9; (* center requester over current position of mouse pointer *)
  395.  
  396. TYPE
  397.  
  398.         (* Structures for requester *)
  399.  
  400.   RequesterListPtr * = POINTER TO RequesterList;
  401.   RequesterList * = RECORD
  402.     renderInfo * : RenderInfoPtr;
  403.     window     * : i.WindowPtr;   (* window requester displayed on *)
  404.     reqWindow  * : i.WindowPtr;   (* window of requester *)
  405.     gadgetList * : GadgetList;    (* requester gadgets *)
  406.     id         * : LONGINT;       (* id = 'ISUP' *)
  407.     flags      * : s.SET32;
  408.     mouseX     * : INTEGER;       (* saved position of mouse pointer before displaying requester *)
  409.     mouseY     * : INTEGER;       (* saved position of mouse pointer before displaying requester *)
  410.   END; (* RequesterList *)
  411.  
  412.   RequesterDataPtr * = POINTER TO RequesterData;
  413.   RequesterData * = RECORD
  414.     leftEdge * : INTEGER;
  415.     topEdge  * : INTEGER;
  416.     width    * : INTEGER;
  417.     height   * : INTEGER;
  418.     flags    * : s.SET32;
  419.     title    * : e.LSTRPTR;
  420.     texts    * : TextDataPtr;
  421.     borders  * : BorderDataPtr;
  422.     gadgets  * : GadgetDataPtr;
  423.   END; (* RequesterData *)
  424.  
  425. CONST
  426.  
  427.         (* Defines for menus *)
  428.  
  429.   title   * = 1;
  430.   item    * = 2;
  431.   subItem * = 3;
  432.  
  433.   mdDisabled   * = 0; (* disable menu or menu item *)
  434.   mdAttribute  * = 1; (* attribute menu item *)
  435.   mdSelected   * = 2; (* selected attribute menu item *)
  436.   mdEmptyLine  * = 3; (* insert empty line before this item *)
  437.   mdHighNone   * = 4; (* no highliting *)
  438.   mdHighBox    * = 5; (* highliting with box, otherwise with complement *)
  439.   mdTextColor2 * = 6; (* alternate color for item text *)
  440.  
  441. TYPE
  442.  
  443.   MenuList * = POINTER TO RECORD END;
  444.  
  445.         (* Structures for menus *)
  446.  
  447.   MenuDataPtr * = POINTER TO MenuData;
  448.   MenuData * = RECORD
  449.     type          * : e.UWORD;
  450.     flags         * : s.SET16;
  451.     name          * : e.LSTRPTR;
  452.     commandKey    * : e.LSTRPTR;
  453.     mutualExclude * : s.SET32;
  454.   END; (* MenuData *)
  455.   MenuDataListPtr * = POINTER TO ARRAY 32767 OF MenuData;
  456.  
  457. CONST
  458.  
  459.         (* Defines for text file *)
  460.  
  461.   tfTrimLine         * = 0; (* strip leading and trailing white space *)
  462.   tfSkipComments     * = 1; (* skip C style comments *)
  463.   tfSkipEmptyLines   * = 2; (* skip empty lines *)
  464.   tfLineContinuation * = 3; (* continue line with last character '\' in next line *)
  465.  
  466.   normal           * = 0;
  467.   eof              * = 1;
  468.  
  469.   noFileData       * = -1;
  470.   lineTooLong      * = -2;
  471.   noCommentEnd     * = -3;
  472.   readFailed       * = -4;
  473.  
  474. TYPE
  475.  
  476.         (* Structures for text file *)
  477.  
  478.   FileDataPtr * = POINTER TO FileData;
  479.   FileData * = RECORD
  480.     line    * : e.LSTRPTR;
  481.     lineLen * : e.UWORD;
  482.     lineNum * : e.UWORD;
  483.   END; (* FileData *)
  484.  
  485. TYPE
  486.  
  487.   PtrData * = POINTER TO ARRAY 32767 OF INTEGER;
  488.  
  489.         (* Structures for mouse pointer *)
  490.  
  491.   PointerDataPtr * = POINTER TO PointerData;
  492.   PointerData * = RECORD
  493.     width   * : e.UBYTE;
  494.     height  * : e.UBYTE;
  495.     xOffset * : SHORTINT;
  496.     yOffset * : SHORTINT;
  497.     data    * : PtrData;
  498.   END; (* PointerData *)
  499.  
  500.  
  501. (* --- Library Base variable -------------------------------------------- *)
  502.  
  503. VAR
  504.  
  505.   base *  : e.LibraryPtr;
  506.  
  507.  
  508. (* --- Library Functions ------------------------------------------------ *)
  509.  
  510.  
  511. PROCEDURE GetRenderInfo* [base,-30]
  512.   ( screen [8] : i.ScreenPtr;
  513.     flags  [0] : s.SET32 )
  514.   : RenderInfoPtr;
  515. PROCEDURE FreeRenderInfo* [base,-36]
  516.   ( ri [8] : RenderInfoPtr );
  517. PROCEDURE OpenWindow* [base,-42]
  518.   ( ri     [8] : RenderInfoPtr;
  519.     VAR nw [9] : i.NewWindowBase;
  520.     flags  [0] : s.SET32 )
  521.   : i.WindowPtr;
  522. PROCEDURE ClearWindow* [base,-48]
  523.   ( ri       [8] : RenderInfoPtr;
  524.     win      [9] : i.WindowPtr;
  525.     leftedge [0] : e.UWORD;
  526.     topedge  [1] : e.UWORD;
  527.     width    [2] : e.UWORD;
  528.     height   [3] : e.UWORD;
  529.     flags    [4] : s.SET32 );
  530. PROCEDURE CloseWindow* [base,-54]
  531.   ( win         [8] : i.WindowPtr;
  532.     morewindows [0] : e.LBOOL );
  533. PROCEDURE AvailFonts* [base,-60]
  534.   ( ri [8] : RenderInfoPtr )
  535.   : df.AvailFontsHeaderPtr;
  536. PROCEDURE AskFont* [base,-66]
  537.   ( ri     [8] : RenderInfoPtr;
  538.     VAR ta [9] : gfx.TextAttr )
  539.   : gfx.TextAttrPtr;
  540. PROCEDURE OpenFont* [base,-72]
  541.   ( ri     [8] : RenderInfoPtr;
  542.     VAR ta [9] : gfx.TextAttrPtr )
  543.   : gfx.TextFontPtr;
  544.  
  545. PROCEDURE DisplayTextsA* [base,-78]
  546.   ( ri       [8] : RenderInfoPtr;
  547.     win      [9] : i.WindowPtr;
  548.     td      [10] : ARRAY OF TextData;
  549.     hoffset  [0] : INTEGER;
  550.     voffset  [1] : INTEGER;
  551.     lta     [11] : TextArrayPtr );
  552. PROCEDURE DisplayTextsPtr* [base,-78]
  553.   ( ri       [8] : RenderInfoPtr;
  554.     win      [9] : i.WindowPtr;
  555.     td      [10] : TextDataListPtr;
  556.     hoffset  [0] : INTEGER;
  557.     voffset  [1] : INTEGER;
  558.     lta     [11] : TextArrayPtr );
  559. PROCEDURE PrintText* [base,-84]
  560.   ( ri        [8] : RenderInfoPtr;
  561.     win       [9] : i.WindowPtr;
  562.     text     [10] : ARRAY OF CHAR;
  563.     leftedge  [0] : e.UWORD;
  564.     topedge   [1] : e.UWORD;
  565.     type      [2] : e.UWORD;
  566.     flags     [3] : s.SET32;
  567.     textattr [11] : gfx.TextAttrPtr )
  568.   : e.UWORD;
  569. PROCEDURE ConvertUnsignedDec* [base,-90]
  570.   ( num        [0] : e.ULONG;
  571.     VAR buffer [8] : ARRAY OF CHAR;
  572.     flags      [1] : s.SET32 )
  573.   : e.UWORD;
  574. PROCEDURE ConvertSignedDec* [base,-96]
  575.   ( num        [0] : LONGINT;
  576.     VAR buffer [8] : ARRAY OF CHAR;
  577.     flags      [1] : s.SET32 )
  578.   : e.UWORD;
  579. PROCEDURE ConvertHex* [base,-102]
  580.   ( num        [0] : e.ULONG;
  581.     VAR buffer [8] : ARRAY OF CHAR;
  582.     flags      [1] : s.SET32 )
  583.   : e.UWORD;
  584. PROCEDURE ConvertBin* [base,-108]
  585.   ( num        [0] : e.ULONG;
  586.     VAR buffer [8] : ARRAY OF CHAR;
  587.     flags      [1] : s.SET32 )
  588.   : e.UWORD;
  589.  
  590. PROCEDURE DisplayBordersA* [base,-114]
  591.   ( ri      [8] : RenderInfoPtr;
  592.     win     [9] : i.WindowPtr;
  593.     bd     [10] : ARRAY OF BorderData;
  594.     hoffset [0] : INTEGER;
  595.     voffset [1] : INTEGER );
  596. PROCEDURE DisplayBordersPtr* [base,-114]
  597.   ( ri      [8] : RenderInfoPtr;
  598.     win     [9] : i.WindowPtr;
  599.     bd     [10] : BorderDataListPtr;
  600.     hoffset [0] : INTEGER;
  601.     voffset [1] : INTEGER );
  602. PROCEDURE DrawBorder* [base,-120]
  603.   ( ri       [8] : RenderInfoPtr;
  604.     win      [9] : i.WindowPtr;
  605.     leftedge [0] : e.UWORD;
  606.     topedge  [1] : e.UWORD;
  607.     width    [2] : e.UWORD;
  608.     height   [3] : e.UWORD;
  609.     type     [4] : e.UWORD );
  610.  
  611. PROCEDURE CreateGadgets* [base,-126]
  612.   ( ri       [8] : RenderInfoPtr;
  613.     VAR gd   [9] : GadgetData;
  614.     hoffset  [0] : INTEGER;
  615.     voffset  [1] : INTEGER;
  616.     lta     [10] : TextArrayPtr )
  617.   : GadgetList;
  618. PROCEDURE FreeGadgets* [base,-132]
  619.   ( gl [8] : GadgetList );
  620. PROCEDURE DisplayGadgets* [base,-138]
  621.   ( win [8] : i.WindowPtr;
  622.     gl  [9] : GadgetList );
  623. PROCEDURE RefreshGadgets* [base,-144]
  624.   ( gl [8] : GadgetList );
  625. PROCEDURE ModifyGadget* [base,-150]
  626.   ( gl        [8] : GadgetList;
  627.     dataentry [0] : e.UWORD;
  628.     leftedge  [1] : LONGINT;
  629.     topedge   [2] : LONGINT;
  630.     width     [3] : e.ULONG;
  631.     height    [4] : e.ULONG );
  632. PROCEDURE SetGadgetAttributes* [base,-156]
  633.   ( gl        [8] : GadgetList;
  634.     dataentry [0] : e.UWORD;
  635.     flagmask  [1] : s.SET32;
  636.     flagbits  [2] : s.SET32;
  637.     data1     [3] : SYS.LONGWORD;
  638.     data2     [4] : SYS.LONGWORD;
  639.     data3     [9] : SYS.LONGWORD )
  640.   : e.ULONG;
  641. PROCEDURE ActivateInputGadget* [base,-162]
  642.   ( gl        [8] : GadgetList;
  643.     dataentry [0] : e.UWORD );
  644. PROCEDURE GadgetAddress* [base,-168]
  645.   ( gl        [8] : GadgetList;
  646.     dataentry [0] : e.UWORD )
  647.   : i.GadgetPtr;
  648. PROCEDURE RemoveGadgets* [base,-174]
  649.   ( gl [8] : GadgetList )
  650.   : i.WindowPtr;
  651. PROCEDURE GetMsg* [base,-180]
  652.   ( uport [8] : e.MsgPortPtr )
  653.   : i.IntuiMessagePtr;
  654. PROCEDURE ReplyMsg* [base,-186]
  655.   ( imsg [8] : i.IntuiMessagePtr );
  656. PROCEDURE ConvertRawKeyToASCII* [base,-294]
  657.   ( imsg [8] : i.IntuiMessagePtr )
  658.   : CHAR;
  659.  
  660. PROCEDURE AutoRequest* [base,-192]
  661.   ( reqwin        [8] : i.WindowPtr;
  662.     title         [9] : e.LSTRPTR;
  663.     bodytext     [10] : ARRAY OF CHAR;
  664.     postext      [11] : e.LSTRPTR;
  665.     negtext       [0] : e.LSTRPTR;
  666.     posidcmpflags [1] : s.SET32;
  667.     negidcmpflags [2] : s.SET32;
  668.     reqflags      [3] : s.SET32;
  669.     lta           [4] : TextArrayPtr )
  670.   : BOOLEAN;
  671. PROCEDURE DisplayRequester* [base,-198]
  672.   ( reqwin  [8] : i.WindowPtr;
  673.     VAR rd  [9] : RequesterData;
  674.     lta    [10] : TextArrayPtr )
  675.   : RequesterListPtr;
  676. PROCEDURE RemoveRequester* [base,-204]
  677.   ( rl [8] : RequesterListPtr );
  678.  
  679. PROCEDURE CreateMenuA* [base,-210]
  680.   ( ri   [8] : RenderInfoPtr;
  681.     win  [9] : i.WindowPtr;
  682.     md  [10] : ARRAY OF MenuData;
  683.     ta  [11] : gfx.TextAttrPtr;
  684.     lta  [0] : TextArrayPtr )
  685.   : MenuList;
  686. PROCEDURE CreateMenu* [base,-210]
  687.   ( ri   [8] : RenderInfoPtr;
  688.     win  [9] : i.WindowPtr;
  689.     md  [10] : MenuDataListPtr;
  690.     ta  [11] : gfx.TextAttrPtr;
  691.     lta  [0] : TextArrayPtr )
  692.   : MenuList;
  693. PROCEDURE AttachMenu* [base,-216]
  694.   ( win [8] : i.WindowPtr;
  695.     ml  [9] : MenuList );
  696. PROCEDURE MenuItemAddress* [base,-222]
  697.   ( ml      [8] : MenuList;
  698.     menunum [0] : e.UWORD )
  699.   : i.MenuItemPtr;
  700. PROCEDURE RemoveMenu* [base,-228]
  701.   ( ml [8] : MenuList )
  702.   : i.WindowPtr;
  703. PROCEDURE FreeMenu* [base,-234]
  704.   ( ml [8] : MenuList );
  705.  
  706. PROCEDURE OpenTextFile* [base,-240]
  707.   ( name           [8] : ARRAY OF CHAR;
  708.     readbuffersize [0] : e.UWORD;
  709.     linebuffersize [1] : e.UWORD;
  710.     flags          [2] : s.SET32 )
  711.   : FileDataPtr;
  712. PROCEDURE ReadTextLine* [base,-246]
  713.   ( fd [8] : FileDataPtr )
  714.   : INTEGER;
  715. PROCEDURE CloseTextFile* [base,-252]
  716.   ( fd [8] : FileDataPtr );
  717.  
  718. PROCEDURE BuildLanguageTextArray* [base,-258]
  719.   ( name    [8] : ARRAY OF CHAR;
  720.     entries [0] : e.UWORD )
  721.   : TextArrayPtr;
  722. PROCEDURE GetLanguageText* [base,-264]
  723.   ( text      [8] : ARRAY OF CHAR;
  724.     textarray [9] : TextArrayPtr )
  725.   : e.LSTRPTR;
  726. PROCEDURE FreeLanguageTextArray* [base,-270]
  727.   ( textarray [8] : TextArrayPtr );
  728.  
  729. PROCEDURE ChangeMousePointer* [base,-276]
  730.   ( win           [8] : i.WindowPtr;
  731.     VAR pd        [9] : PointerData;
  732.     removegadgets [0] : e.LBOOL );
  733. PROCEDURE ChangeMousePointerPtr* [base,-276]
  734.   ( win           [8] : i.WindowPtr;
  735.     pd            [9] : PointerDataPtr;
  736.     removegadgets [0] : e.LBOOL );
  737. PROCEDURE RestoreMousePointer* [base,-282]
  738.   ( win [8] : i.WindowPtr );
  739. PROCEDURE MoveMousePointer* [base,-288]
  740.   ( win    [8] : i.WindowPtr;
  741.     x      [0] : INTEGER;
  742.     y      [1] : INTEGER;
  743.     button [2] : e.LBOOL );
  744.  
  745.  
  746. (* --- C Macros defined as procedures ----------------------------------- *)
  747.  
  748. <*$LongVars+*>
  749.  
  750. (*------------------------------------*)
  751. PROCEDURE [0] InputAutoActivate * (next, prev : e.UWORD) : e.ULONG;
  752. (*InputAutoActivate(next,prev)  * = ((((LONG)next) << 16) | prev)   (* macro for (gdInputActivateNext | gdInpuActivatePrev) *)*)
  753.  
  754. BEGIN (* InputAutoActivate *)
  755.   RETURN (next * 10000H) + prev
  756. END InputAutoActivate;
  757.  
  758.  
  759. (* --- Library Base variable -------------------------------------------- *)
  760.  
  761. <*$LongVars-*>
  762.  
  763. (*------------------------------------*)
  764. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  765.  
  766. BEGIN (* CloseLib *)
  767.   IF base # NIL THEN e.CloseLibrary (base) END;
  768. END CloseLib;
  769.  
  770. BEGIN
  771.   base := e.OpenLibrary (intuisupName, version);
  772.   IF base # NIL THEN Kernel.SetCleanup (CloseLib) END
  773. END IntuiSup.
  774.